package com.navinfo.tripanalysis.common.arithmetic.common;

import lombok.Data;

/**
 * @Description: 行程中发动机数据流汇总数据数据
 * @author 刘俊
 */
@Data
public class EngineAggregatedData {
    /**
     * vin,车辆识别码b b   ccc
     */
    private String vin;
    /**
     * 车辆ID
     */
    private long tid;
    /**
     * 排放标准
     */
    private String emissionStandard;
    /**
     * 车辆类别（城市车辆，N2非城市车辆，N3非城市车辆）
     */
    private String carCategory;
    /**
     * 发动机型号
     */
    private String engineType;
    /**
     * 车辆型号
     */
    private String carType;
    /**
     * 行程ID
     */
    private int tripId;
    /**
     * 行程开始时间
     */
    private long routeStartTime;
    /**
     * 行程结束时间
     */
    private long routeEndTime;
    /**
     * 行程时长
     */
    private int routeDuration;
    /**
     * 上一个位置点的时间
     */
    private long lastGpsTime;
    /**
     * 发动机数据缺项标志位
     */
    private int existEngineDataMiss;
    /**
     * 发动机数据异常标志位
     */
    private int existEngineDataAbnormal;
    /**
     * 发动机数据缺项名称列表
     */
    private String engineDataMissTerms;
    /**
     * 发动机数据异常名称列表
     */
    private String engineDataAbnmTerms;

    //数据缺项累计时长
    //速度
    private int speedMissDuration;
    //大气压力
    private int barometricPressureMissDuration;
    //发动机净输出扭矩
    private int outputTorqueMissDuration;
    //摩擦扭矩
    private int frictionTorqueMissDuration;
    //转速
    private int rotationMissDuration;
    //发动机燃料流量
    private int fuelConsumptionMissDuration;
    //SCR上游NOx传感器输出值
    private int scrUpNOxMissDuration;
    //SCR下游NOx传感器输出值
    private int scrDownNOxMissDuration;
    //反应剂余量
    private int reagentAllowanceMissDuration;
    //进气量
    private int airInflowMissDuration;
    //SCR入口温度
    private int scrInMissDuration;
    //SCR出口温度
    private int scrOutMissDuration;
    //DPF压差
    private int dropoutVoltageMissDuration;
    //发动机冷却液温度
    private int coolantTemperatureMissDuration;
    //油箱液位
    private int tankLevelMissDuration;
    //定位状态：0有效定位，1无效定位
    private int positioningStateMissDuration;
    //经度
    private int longitudeMissDuration;
    //纬度
    private int latitudeMissDuration;
    //累计里程
    private int mileageMissDuration;
    //三元催化器下游NOX传感器输出值
    private int ternaryDownNOxOutputMissDuration;
    //三元催化器上游氧传感器输出值
    private int ternaryUpO2OutputMissDuration;
    //三元催化器下游氧传感器输出值
    private int ternaryDownO2OutputMissDuration;

    //数据异常累计时长
    //速度
    private int speedAbnmDuration;
    //大气压力
    private int barometricPressureAbnmDuration;
    //发动机净输出扭矩
    private int outputTorqueAbnmDuration;
    //摩擦扭矩
    private int frictionTorqueAbnmDuration;
    //转速
    private int rotationAbnmDuration;
    //发动机燃料流量
    private int fuelConsumptionAbnmDuration;
    //SCR上游NOx传感器输出值
    private int scrUpNOxAbnmDuration;
    //SCR下游NOx传感器输出值
    private int scrDownNOxAbnmDuration;
    //反应剂余量
    private int reagentAllowanceAbnmDuration;
    //进气量
    private int airInflowAbnmDuration;
    //SCR入口温度
    private int scrInAbnmDuration;
    //SCR出口温度
    private int scrOutAbnmDuration;
    //DPF压差
    private int dropoutVoltageAbnmDuration;
    //发动机冷却液温度
    private int coolantTemperatureAbnmDuration;
    //油箱液位
    private int tankLevelAbnmDuration;
    //三元催化器下游NOX传感器输出值
    private int ternaryDownNOxOutputAbnmDuration;
    //三元催化器上游氧传感器输出值
    private int ternaryUpO2OutputAbnmDuration;
    //三元催化器下游氧传感器输出值
    private int ternaryDownO2OutputAbnmDuration;

    /**
     * 发动机数据总点数
     */
    private int engineDataPoints;

    //数据缺项累计点数
    //速度
    private int speedMissPoints;
    //大气压力
    private int barometricPressureMissPoints;
    //发动机净输出扭矩
    private int outputTorqueMissPoints;
    //摩擦扭矩
    private int frictionTorqueMissPoints;
    //转速
    private int rotationMissPoints;
    //发动机燃料流量
    private int fuelConsumptionMissPoints;
    //SCR上游NOx传感器输出值
    private int scrUpNOxMissPoints;
    //SCR下游NOx传感器输出值
    private int scrDownNOxMissPoints;
    //反应剂余量
    private int reagentAllowanceMissPoints;
    //进气量
    private int airInflowMissPoints;
    //SCR入口温度
    private int scrInMissPoints;
    //SCR出口温度
    private int scrOutMissPoints;
    //DPF压差
    private int dropoutVoltageMissPoints;
    //发动机冷却液温度
    private int coolantTemperatureMissPoints;
    //油箱液位
    private int tankLevelMissPoints;
    //定位状态：0有效定位，1无效定位
    private int positioningStateMissPoints;
    //经度
    private int longitudeMissPoints;
    //纬度
    private int latitudeMissPoints;
    //累计里程
    private int mileageMissPoints;
    //三元催化器下游NOX传感器输出值
    private int ternaryDownNOxOutputMissPoints;
    //三元催化器上游氧传感器输出值
    private int ternaryUpO2OutputMissPoints;
    //三元催化器下游氧传感器输出值
    private int ternaryDownO2OutputMissPoints;

    //数据异常累计点数
    //速度
    private int speedAbnmPoints;
    //大气压力
    private int barometricPressureAbnmPoints;
    //发动机净输出扭矩
    private int outputTorqueAbnmPoints;
    //摩擦扭矩
    private int frictionTorqueAbnmPoints;
    //转速
    private int rotationAbnmPoints;
    //发动机燃料流量
    private int fuelConsumptionAbnmPoints;
    //SCR上游NOx传感器输出值
    private int scrUpNOxAbnmPoints;
    //SCR下游NOx传感器输出值
    private int scrDownNOxAbnmPoints;
    //反应剂余量
    private int reagentAllowanceAbnmPoints;
    //进气量
    private int airInflowAbnmPoints;
    //SCR入口温度
    private int scrInAbnmPoints;
    //SCR出口温度
    private int scrOutAbnmPoints;
    //DPF压差
    private int dropoutVoltageAbnmPoints;
    //发动机冷却液温度
    private int coolantTemperatureAbnmPoints;
    //油箱液位
    private int tankLevelAbnmPoints;
    //三元催化器下游NOX传感器输出值
    private int ternaryDownNOxOutputAbnmPoints;
    //三元催化器上游氧传感器输出值
    private int ternaryUpO2OutputAbnmPoints;
    //三元催化器下游氧传感器输出值
    private int ternaryDownO2OutputAbnmPoints;

    //数据项值总和
    //速度
    private long speedTotal;
    //大气压力
    private long barometricPressureTotal;
    //发动机净输出扭矩
    private long outputTorqueTotal;
    //摩擦扭矩
    private long frictionTorqueTotal;
    //转速
    private long rotationTotal;
    //发动机燃料流量
    private long fuelConsumptionTotal;
    //SCR上游NOx传感器输出值
    private long scrUpNOxTotal;
    //SCR下游NOx传感器输出值
    private long scrDownNOxTotal;
    //反应剂余量
    private long reagentAllowanceTotal;
    //进气量
    private long airInflowTotal;
    //SCR入口温度
    private long scrInTotal;
    //SCR出口温度
    private long scrOutTotal;
    //DPF压差
    private long dropoutVoltageTotal;
    //发动机冷却液温度
    private long coolantTemperatureTotal;
    //油箱液位
    private long tankLevelTotal;
    //三元催化器下游NOX传感器输出值
    private long ternaryDownNOxOutputTotal;
    //三元催化器上游氧传感器输出值
    private long ternaryUpO2OutputTotal;
    //三元催化器下游氧传感器输出值
    private long ternaryDownO2OutputTotal;

    //数据项最大值
    //速度
    private int speedMax = Integer.MIN_VALUE;
    //大气压力
    private int barometricPressureMax = Integer.MIN_VALUE;
    //发动机净输出扭矩
    private int outputTorqueMax = Integer.MIN_VALUE;
    //摩擦扭矩
    private int frictionTorqueMax = Integer.MIN_VALUE;
    //转速
    private int rotationMax = Integer.MIN_VALUE;
    //发动机燃料流量
    private int fuelConsumptionMax = Integer.MIN_VALUE;
    //SCR上游NOx传感器输出值
    private int scrUpNOxMax = Integer.MIN_VALUE;
    //SCR下游NOx传感器输出值
    private int scrDownNOxMax = Integer.MIN_VALUE;
    //反应剂余量
    private int reagentAllowanceMax = Integer.MIN_VALUE;
    //进气量
    private int airInflowMax = Integer.MIN_VALUE;
    //SCR入口温度
    private int scrInMax = Integer.MIN_VALUE;
    //SCR出口温度
    private int scrOutMax = Integer.MIN_VALUE;
    //DPF压差
    private int dropoutVoltageMax = Integer.MIN_VALUE;
    //发动机冷却液温度
    private int coolantTemperatureMax = Integer.MIN_VALUE;
    //油箱液位
    private int tankLevelMax = Integer.MIN_VALUE;
    //三元催化器下游NOX传感器输出值
    private int ternaryDownNOxOutputMax = Integer.MIN_VALUE;
    //三元催化器上游氧传感器输出值
    private int ternaryUpO2OutputMax = Integer.MIN_VALUE;
    //三元催化器下游氧传感器输出值
    private int ternaryDownO2OutputMax = Integer.MIN_VALUE;

    //数据项最小值
    //速度
    private int speedMin = Integer.MAX_VALUE;
    //大气压力
    private int barometricPressureMin = Integer.MAX_VALUE;
    //发动机净输出扭矩
    private int outputTorqueMin = Integer.MAX_VALUE;
    //摩擦扭矩
    private int frictionTorqueMin = Integer.MAX_VALUE;
    //转速
    private int rotationMin = Integer.MAX_VALUE;
    //发动机燃料流量
    private int fuelConsumptionMin = Integer.MAX_VALUE;
    //SCR上游NOx传感器输出值
    private int scrUpNOxMin = Integer.MAX_VALUE;
    //SCR下游NOx传感器输出值
    private int scrDownNOxMin = Integer.MAX_VALUE;
    //反应剂余量
    private int reagentAllowanceMin = Integer.MAX_VALUE;
    //进气量
    private int airInflowMin = Integer.MAX_VALUE;
    //SCR入口温度
    private int scrInMin = Integer.MAX_VALUE;
    //SCR出口温度
    private int scrOutMin = Integer.MAX_VALUE;
    //DPF压差
    private int dropoutVoltageMin = Integer.MAX_VALUE;
    //发动机冷却液温度
    private int coolantTemperatureMin = Integer.MAX_VALUE;
    //油箱液位
    private int tankLevelMin = Integer.MAX_VALUE;
    //三元催化器下游NOX传感器输出值
    private int ternaryDownNOxOutputMin = Integer.MAX_VALUE;
    //三元催化器上游氧传感器输出值
    private int ternaryUpO2OutputMin = Integer.MAX_VALUE;
    //三元催化器下游氧传感器输出值
    private int ternaryDownO2OutputMin = Integer.MAX_VALUE;

    //排放测算路况统计数据
    /**
     * 行程里程（精准）
     */
    private Integer tripMileage;
    /**
     * 行程NOx平均值
     */
    private Double tripNoxAvg;
    /**
     * 行程比排放合格率
     */
    private Double specificEmissionQualifiedRate;
    /**
     * 行程直接排放合格率
     */
    private Double directEmissionQualifiedRate;
    /**
     * 排放数据提取开始时间
     */
    private String calcStartTime;
    /**
     * 排放数据提取结束时间
     */
    private String calcEndTime;
    /**
     * 三元催化器温度传感器输出值总值
     */
    private long ternaryTemperatureOutputTotal;
    /**
     * 三元催化器温度传感器输出值最小值
     */
    private int ternaryTemperatureOutputMin = Integer.MAX_VALUE;
    /**
     * 三元催化器温度传感器输出值最大值
     */
    private int ternaryTemperatureOutputMax = Integer.MIN_VALUE;
    /**
     * 三元催化器温度传感器缺项累计点
     */
    private int ternaryTemperatureOutputMissPoints;
    /**
     * 三元催化器温度传感器异常累计点
     */
    private int ternaryTemperatureOutputAbnmPoints;
    /**
     * 三元催化器温度传感器缺项累计时间
     */
    private int ternaryTemperatureOutputMissDuration;
    /**
     * 三元催化器温度传感器异常累计时间
     */
    private int ternaryTemperatureOutputAbnmDuration;
}
